package com.tlkj.common.curd.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.tlkj.common.curd.entity.Api;
import com.tlkj.common.curd.vo.ApiVo;

/**
 * API - Service
 * @author flyong86
 * @since 2024年6月19日
 */
public interface ApiService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Api queryById(String id);

    /**
     * 分页查询.
     * @param page 分页条件
     * @param api 查询条件
     * @return 查询结果
     */
    PageInfo<Api> page(Page<Api> page, Api api);

    /**
     * 新增数据
     *
     * @param api 实例对象
     * @return 实例对象
     */
    void save(ApiVo api) throws Exception;
    /**
     * 更新数据
     *
     * @param api 实例对象
     * @return 实例对象
     */
    void update(ApiVo api) throws Exception;

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(String id);

    /**
     * 获取详情.
     * @param id 主键
     * @return API详情
     */
    ApiVo findInfo(String id);

    /**
     * 根据路径查询API.
     * @param path API路径
     * @param enable 是否发布
     * @return API信息
     */
    ApiVo findByPath(String path, Boolean enable);
}
